/**
 *
 */
package com.newer.biz.sys.permission;

import com.newer.commons.result.BizResult;
import com.newer.dao.bean.sys.Permission;
import com.newer.dao.commons.dataobject.MenuPermissionDO;

import java.util.List;

/**
 * 权限相关业务操作
 *
 * @author xuntj
 * @create 2018-05-21 18:46
 **/
public interface PermissionBiz {

    /**
     * 分页查询所有权限相关信息
     *
     * @param permission
     * @return
     */
    BizResult<Permission> queryPermissionInfoByPage(Permission permission);

    /**
     * 查询所有权限相关信息
     *
     * @param permission
     * @return
     */
    BizResult<Permission> queryMenuDefaultPermissionInfo(MenuPermissionDO permission);

    /**
     * 查询菜单权限信息
     *
     * @param status
     * @param menuIds
     * @return
     */
    BizResult<Permission> queryRoleMenuPermissionsInfo(String roleId, Integer status, List<String> menuIds);

    /**
     * 添加权限信息
     *
     * @param permission
     * @return
     */
    BizResult<?> operatePermissionInfo(Permission permission);

    /**
     * 异步校验权限Code
     *
     * @param permissionCode
     * @return
     */
    BizResult<String> checkPermissionCodeExits(String permissionCode);

    /**
     * 根据Id查询权限信息
     *
     * @param id
     * @return
     */
    BizResult<Permission> queryPermissionById(String id);


    /**
     * 根据Id删除权限信息
     *
     * @param id
     * @return
     */
    BizResult<?> validStatus(String id, Integer status);

}
